Accelerated data navigation

ABSTRACT

A method and system uses an acceleration curve to enhance data navigation. In a preferred embodiment, the scrolling algorithm of an input device with a rotational member accelerates a resultant scroll amount in direct relation to a rotational speed of the rotational member. The acceleration curve may be implemented in a look-up table in the mouse driver. Different acceleration curves may be used based upon whether a user is scrolling up or scrolling down. In a further embodiment, acceleration is temporarily inhibited upon the occurrence of a change in the direction of rotation of the rotational member.

[0001] This application is a continuation of and claims priority toco-pending U.S. application Ser. No. 09/791,900, filed Feb. 26, 2001,entitled “Method and System for Accelerated Data Navigation”.

FIELD OF THE INVENTION

[0002] The present invention relates generally to user actuated pointingdevices for use with a computer. More particularly, the inventionrelates to enhancing the scrolling algorithm of wheeled input devices.

BACKGROUND OF THE INVENTION

[0003] The computer mouse has simplified the computer-human interface.Before the computer mouse, many users were confined to interacting witha computer through the use of a command line interface (CLI as is knownin the art). The computer mouse (also commonly referred to simply as a“mouse”) has, in recent years, been improved upon with the inclusion ofa wheel on the top of the mouse. An example of a wheeled mouse is shownin FIG. 1. The function of the wheel 106 is to scroll the text ordocument or image located below a displayed cursor 113 shown on a visualdisplay device 112. The wheel is linked to an optically encoded wheelfor sensing the rotational location of the wheel 106. To allow forfeedback to the user, the wheel contains a number of notches (not shownfor simplicity). When rotated, a user is presented with tactile feedbackof the distance rotated through sensing the number of notches rotated bythe wheel. The function of the wheel 106 is interpreted through signalssent from mouse 101 through cable 110 to computer 109 having memory 114and processor 115. Shown for completeness is keyboard 116, which isgenerally used in combination with mouse 101 for various operations asare known in the art. For example, rotating the wheel away from the usermay scroll the underlying displayed content down so as to show anotherportion of the displayed content immediately preceding the originallydisplayed content. Likewise, rotating the wheel toward the user mayscroll the underlying displayed content up.

[0004] A user may specify a scrolling mode of either scrolling by afixed number of lines (referred to herein as the “line-scrolling mode”)or scrolling by page (referred to herein as the “page-scrolling mode).To change from one scrolling mode, or to modify the number of lines toscroll in the line-scrolling mode, a user navigates a series of windowsto a preferences option list for the wheeled mouse. In general, thepreferences page allows selection of the scrolling mode as well as adesignation of the number of lines to scroll per notch indent when aline-scrolling mode is selected.

[0005] Other features of a wheeled mouse and alternative techniques ofnavigating a display through the use of the wheeled mouse are disclosedin U.S. Ser. No. 09/212,898, filed Dec. 16, 1998, for “System and Methodof Adjusting Display Characteristics of a Displayable Data File Using AnErgonomic Computer Input Device.” The contents of this application arehereby incorporated herein by reference.

[0006] Presently, to scroll a document or other content on a computerscreen, a user may use a scrolling mechanism on an input device such asthe wheel on a mouse as described above, keyboard navigation keys, or ascroll bar provided as part of a graphical user interface. In many userscenarios, the wheel on the mouse is preferred for scrolling. Scrollingthrough a document via the wheel on a wheeled mouse provides usefuldocument handling without the need to access the keyboard or predefinedscroll bars. A mouse wheel is, however, limited in the distance that onecan quickly scroll across a document or other data file. Rolling thewheel works very well for precision (short-distance) scrolling, allowingusers to finely tune to the section of the page they want visible, butthis method becomes less satisfactory as document length is increasedand the user needs to scroll longer distances.

[0007] For example, in a scenario where the user needs to scroll a longdistance in a document using a wheeled mouse as shown in FIGS. 1A and1B, the user would have to scroll across 22 notches of the mouse wheelper page on the default setting of 3 lines per notch. In a typicalstroke, the user may go through 6 notches; therefore to scroll one wholepage the user has to actuate a full stroke of the wheel four times.Scrolling more than approximately two pages may make using the scrollwheel uncomfortable and strenuous.

[0008] As a document's size changes or the needs of a user change (forexample, from drafting a document to editing or reviewing a completeddraft), the user may desire to change the scrolling mode. With the knownwheeled mouse, changing the scrolling mode involves navigating to amouse preferences page, switching the scrolling mode, changing (whenappropriate) the number of lines to scroll with every rotational notchin the wheel, and finally returning to the underlying document. Someusers may find that these steps detract from the ease of using thescrolling feature of a wheeled mouse.

[0009] Input controls typically used for scrolling are often providedwith a very low input resolution. For example, one existing mouse wheelhas 18 notch positions that can be sensed, i.e., one notch per every 20degrees. (Notches are provided for tactile feedback, and are notrequired. Notches merely provide the user tactile feedback to determinewhen the user has rolled through a position on the wheel that willtrigger a wheel rotation signal. One can imagine a wheel that has nonotches but works the same as stated above.) Furthermore, messages fromthe mouse are transmitted to the operating system at a predeterminedreporting rate, e.g., 100 Hz for PS/2 and 30 Hz for serial (USB) mice.Thus, if considered as a sensor which ideally would detect the exactactual rotation imparted by the user's finger, the wheel mechanismactually suffers from significant quantization effects both for thesensed angle (20 degree increments) and the sensed time at which thewheel arrived at that angle. As a result, modification of the device'scontrol-to-display ratio can have a significant effect on the user'sperformance.

[0010] The inventors are not presently aware of a variable gain factoradjustment technique that has been optimized for low resolution inputdevices and Microsoft Windows operating systems. One known technique,implemented on Apple MacIntosh computers, uses only two scroll modes.The technique apparently moves the screen in increments of one full pagewhen the user rolls the wheel quickly, but moves a single line at a timewhen the user rolls the wheel slowly. In addition to its operationallimitations, it is difficult to implement this technique on aWindows-based system because of the architecture of the Windows mousesystem. Other known techniques for “accelerating” input devicecontrol/gain ratios in response to the user's input gesture do not givesatisfactory results when scrolling a document using a wheel or otherlow resolution input mechanism.

[0011] Accordingly, a more efficient technique for providing acceleratedscrolling would be desirable, particularly one that could be optimizedfor low resolution input devices using Microsoft Windows operatingsystems.

BRIEF SUMMARY OF THE INVENTION

[0012] In a first aspect of the invention, there is a system forcontrolling navigation of a data file. An input device has auser-actuated input mechanism. A detecting device or arrangement detectsthe rate of user-actuation of the input mechanism. A determinationdevice or arrangement determines a data file navigation rate based on anincreasing function of the rate of user-actuation. An output device orarrangement outputs control signals indicative of the navigation rate.

[0013] In a second aspect, the invention is directed to a method forcontrolling navigation of a data file. A user-actuation rate of amechanism on an input device is detected. A data file navigation rate isdetermined as an increasing function of the user-actuation rate. Controlsignals indicative of the data file navigation rate are provided asoutput.

[0014] In a preferred embodiment, the system and method of the inventionutilize the exponential function Δy=C+K₁(1+K₂Δt)^(α), where Δy is thenavigation rate, C is a constant, K₁ and K₂ are gain factors, α is anon-linear parameter, and Δt is an indication of the rate of useractuation.

[0015] In addition, in a preferred system and method of the invention,the navigation comprises scrolling a display, the user actuationincludes rotation of a rotational member and the data file navigationrate is a scroll rate.

[0016] The above and other aspects, features and advantages of thepresent invention will be readily apparent and fully understood from thefollowing detailed description of preferred embodiments, taken inconjunction with the appended drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0017] A more complete understanding of the present invention and theadvantages thereof may be acquired by referring to the followingdescription in consideration of the accompanying drawings, in which likereference numbers indicate like features, and wherein:

[0018]FIG. 1A is a perspective view of a mouse having a wheel, togetherwith a diagrammatic representation of associated computer systemcomponents.

[0019]FIG. 1B is a side elevational view of the mouse shown in FIG. 1A.

[0020]FIG. 2A is a graph showing a family of acceleration curves inaccordance with an embodiment of the invention.

[0021]FIG. 2B is a graph showing an acceleration curve rounded up inaccordance with an embodiment of the invention.

[0022]FIG. 3 is a diagrammatic depiction of a mouse driverimplementation of the present invention.

[0023]FIG. 4 is a control flowchart showing process steps fordetermining inhibition of acceleration in accordance with the presentinvention.

DETAILED DESCRIPTION OF THE INVENTION

[0024] To address the shortcomings of known scrolling devices as notedabove, the inventors have designed an accelerated scrolling controlthat, in a sense, may be thought of as an automatic transmission for amouse wheel or other user input device that may be used for scrolling orother data file navigation. In a wheeled mouse scrolling implementation,the system can adjust the control-to-display ratio between input andapparent motion on the screen based on how quickly a user turns thewheel. Accelerated scrolling increases the number of scroll messagesbased on the time difference between scroll events (e.g., notch clicks).The faster a user scrolls, the smaller the time difference betweenscroll messages. The scrolling algorithm measures this time differenceand applies a corresponding gain. The smaller the time difference, thelarger the gain. For example, in a slow stroke of a mouse wheel the timedifference between notch clicks is larger compared to a fast stroke ofthe wheel. Just as importantly, when the user does not scroll fast, thescrolling control may revert to sending a single scroll message perwheel notch, thus allowing the wheel to maintain precision for scrollingshort distances.

[0025] While the invention is described primarily in relation toaccelerating scrolling through a text document, it will be appreciatedthat any data content may be navigated including, but not limited to,pages from the Internet, images, spreadsheets, calendars, and the like.Also, scrolling can include navigation of non-viewable media, includingmoving forward and backward through audio, video, and multimedia datafiles. Still further, the invention may be applied to other data filenavigation functionality such as “zoom” features for zooming in and outon an image file or the like. The invention may be implemented using C.It will be appreciated that versions of other languages may be used,including C++, C#, Visual Basic, assembly language, and the like. Anyprogramming language that can produce a computer-executable algorithmfollowing the steps of the invention may be used. While the invention isdescribed primarily in relation to a wheeled mouse providing a scrollingfunctionality, it will be appreciated that the invention is applicableto various other input devices providing a scrolling functionality,e.g., any computer or computer peripheral equipped with a scrollingwheel, such as a keyboard, trackball, stylus, tablet, joystick or gamepad, hand-held or tablet computer, and other common devices familiar tothose skilled in the art. The invention may also be applied to otherlow-resolution sensors that can be operated in a method analogous to ascrolling wheel, such as a low-resolution touch pad with a series ofcontact sensors that the user strokes their finger across, or a sensedmoveable treadmill, similar to a tank tread that you push with yourfinger.

[0026] A known wheeled computer mouse as shown in FIG. 1 may be used inconnection with the present invention. In general, the distance scrolledthrough a document depends on the speed of rotation of the wheel 106.The rotational speed of the wheel may be determined by known means suchas an optical encoder assembly. In some embodiments the wheel maycontain notches through which tactile feedback is provided to a user toassist the user in determining how far the user has rotated the wheel.When the wheel is rotated slowly, the elapsed time since the last notchindent will be relatively high. In accordance with the presentinvention, under these circumstances, the resulting scroll rate may be apredetermined user-selectable scroll rate such as one line per notchindent or three lines per notch indent. When the wheel is rotated atgreater speeds, the elapsed time between notch indents will decrease. Inaccordance with the present invention, scrolling may be acceleratedunder these circumstances in direct relation to the rotational speed ofthe wheel.

[0027] The accelerated scrolling of the present invention is preferablyimplemented based upon acceleration curves similar to any of the familyof acceleration curves shown in FIG. 2A. Each of these curves may beused to determine a continuously variable scroll rate based on the speedof the user's actuation of an input mechanism, e.g., rotation of a mousewheel (or other rotational member). While various acceleration curvesare possible, acceleration curves which meet the following criteria arebelieved to provide the most intuitive and desirable acceleratedscrolling characteristics: 1) acceleration should begin when therotational speed is greater than approximately twenty degrees (or onenotch indent on a Microsoft Intellimouse) per one-tenth of a second.Notches separated by more than one tenth of a second are preferablytreated as discrete, single scrolling events without scrollingacceleration (as on a traditional system); 2) acceleration should occurgradually enough so that the user can visually track the documentwithout perceptible jumps (that may be desorienting); and 3) one rapidstroke of the wheel should scroll approximately one full screen

[0028] It is from working within these design criteria that theinventors developed the exponential acceleration curves shown in FIG.2A, which may be expressed mathematically

Δy=C+K ₁(1+K ₂ Δt) ^(α)  (Equation 1)

[0029] In Equation 1, Δy is the resulting scroll acceleration factor, Δtis the time (measured in seconds) between nothc indents, C is a constantto adjust the baseline of the curve, K₁ is a first gain factor, K₂ is asecond gain factor applied to Δt, and α is the nonlinear (exponential)parameter. Insofar as applicants are aware, exponential functions havepreviously been used to accelerate mouse cursor movements, but not forcontrolling scrolling. A range of values may be used to generate afamily of acceleration curves producing differing amounts ofacceleration, depending on a user's preference. The ranges of values75>=K₁>=2, 30>=K₂>=3, and −2>=α>=−5 are believed to produce a suitablefamily of curves. The values used to produce the curses in FIG. 2A areas follows: Curve K₁ K₂ Alpha C 1 2.3 3 −3 0 2 4 5 −3 0 3 6.5 8.5 −3 0 411.5 12 −3 0 5 19 16 −3 0 6 36 23 −3 0 7 56 27 −3 0

[0030] The most appropriate values for any given application will dependon various factors including the type of device used, the scrollingresolution of the device used, the refresh rate of the configuration,and the expected gain of the device. For instance, devices with higherresolution will require values that produce acceleration for smaller Δtvalues because the notch indents are closer together.

[0031] The resultant scroll rate is preferably arrived at by adjustingthe number of lines to scroll per scroll event. This can be accomplishedby adjusting either the number of lines to scroll per scroll message, orby adjusting the number of scroll messages to be executed per scrollevent. Because the scroll amount per notch indent may beuser-selectable, as described in the Background, a system with a wheeledmouse may scroll one line per notch indent, three lines per notchindent, or some other user selected number of lines per notch indent. Inthis specification, it is assumed that the number of lines to scroll pernotch indent is one. However, it should be apparent to those skilled inthe art that other values may be used.

[0032] In some embodiments, as shown in FIG. 2B, if the rotational speedproduces a scroll rate of less than one line per notch indent, thescroll rate may be rounded up to one line per notch indent. That is, allresultant scroll rates that would otherwise be below line 210 arerounded up to one line per notch indent to produce the accelerationcurve shown in FIG. 2B. Thus, all points to the right of line 220 arerounded up to one, and all points to the left of 220 are acceleratedbased upon the curve.

[0033] The same acceleration curve may be used for both scrolling up(“up-scrolling”) and scrolling down (“down-scrolling”). However, manyusers find up-scrolling more difficult than down-scrolling. Thus, in oneembodiment of the invention, to accommodate the difficulties associatedwith up-scrolling, the values for C, K₁, K₂, and α used for up-scrollingare set to be different than the values used for down-scrolling. It hasbeen found desirable to modify the values of K₁, K₂, α and C so as toincrease the scrolling rate by approximately 20% in up-scrolling ascompared to down scrolling. For example, the values C=0.67, K₁=5, K₂=9,and α=−4.5 have been found to provide suitable results duringup-scrolling, based on a down-scrolling curve using the values C=0,K₁=4, K₂=8, and α=−2.5.

[0034] The system may be set-up to permit the user to select anacceleration curve from a family of acceleration curves, e.g., thoseshown in FIG. 2A, that would produce low, medium, or high accelerationrates, depending on the user's preferences.

[0035] Initial performance tests of the inventive accelerated scrollingsystem suggest that user performance is unaffected for short scrollingdistances, is 15% faster when scrolling medium distances, and isapproximately 200% faster when scrolling longer distances. Timed testingwas utilized to measure performance based upon how quickly usersaccomplished particular tasks. On average, when using acceleratedscrolling, the mean rotational speed of the wheel was observed to beslower, and rotational speeds were distributed over a wider range, thanwhen scrolling without accelerated scrolling. This suggests there may bea biomechanical advantage to using accelerated scrolling by slowing thespeed of repetitive finger motions.

[0036] In many software applications, spinning a mouse wheel or the likemay perform functions other than scrolling. For example, holding downthe CTRL key on a conventional keyboard while rolling the wheel causesmany applications to zoom in on a document, rather than scroll.Acceleration may be applied in such circumstances. In some embodiments,it may be desirable to provide means for disabling acceleration when thewheel or other rotational member is to perform a function other thanscrolling.

[0037] Acceleration may be optimally implemented in a mouse driver asshown in FIG. 3. In another embodiment, acceleration is implemented inthe device firmware 310. It is also possible to implement the inventionat the application level. That is, individual software applications mayincorporate the inventive scrolling modes on a selective basis. However,it is preferable to implement the scrolling modes in the driver ordevice firmware to prevent software developers from being required toupdate each of their software applications. The illustrated systemincludes an input device such as a mouse 101, and a computer 109. Theinput device includes firmware 310 and a navigation input component 320,such as a wheeled mouse or trackball, or a touchpad. The computer 109includes an input device driver 340 and application software 350. Thedriver 340 detects the time between scroll events (e.g., rotation of thewheel an amount corresponding to a notch click) received from the devicefirmware 310. The driver applies the previously described accelerationcurve (see FIG. 2) by multiplying the number of scroll events by anacceleration factor Δy≧1 computed with Equation 1. The driver thenprovides the accelerated scrolling information to the applicationsoftware. To avoid floating point mathematical operation, the curve canbe implemented by way of a look-up table. A look-up table can also avoidthe need for processor intensive exponential operations to be carriedout in the mouse driver. In many computer systems, it is necessary touse fixed-point computation techniques in the mouse driver becausefloating-point operations are not available at the driver's securityring.

[0038] In accordance with the invention, the driver can enforce arounding-up of the scrolling amount to an integer number of lines.Alternatively, accelerated scrolling using fractional lines of displaymay be allowed. Some applications may only support scrolling byincrements of a single display line or other integer amounts.

[0039] With conventional scrolling, when a user overshoots an intendedlocation in a document, a common reaction is to quickly reverse scroll,i.e., scroll in the opposite direction. Scrolling acceleration may causethe user to again overshoot the intended location in the reversedirection, because the user's reaction to the initial overshoot may, ineffect, be amplified by the acceleration. To address this potentialproblem, in the embodiment of the invention shown in the flowchart ofFIG. 4, inhibition is used to momentarily inhibit acceleration uponoccurrence of a sudden change in direction of wheel rotation. Using aninhibition timer, acceleration is prevented for a predetermined amountof time upon detection of a change in the direction of wheel rotation.An inhibition time of approximately 200-500 ms has been found to beuseful. However, the inhibition timer may be set to any amount of time.Inhibition after a direction change can be implemented using a simplestate machine in the device driver or firmware, as described below.

[0040] Referring to FIG. 4, scroll data from the wheeled input device isreceived in step 405. After receiving the scroll data, the systemcalculates in step 410, the time Δt between the last scroll event (e.g.,notch click) and the present scroll event. In step 415, the systemdetermines whether the inhibition timer is on as a result of a previousdirection change. If the inhibition timer is on, control proceeds tostep 420. If the inhibition timer is off, control proceeds to step 430.In step 420, the system checks to determine whether the inhibition timerhas expired. That is, the system determines whether an elapsed time isgreater than a preset inhibitory constant. If the elapsed time isgreater than the inhibitory constant, the inhibition timer is turned offin step 425. If the elapsed time does not exceed the inhibitoryconstant, the system inhibits acceleration in step 440, and outputs thescroll data (without any acceleration) in step 450.

[0041] If the system determines that the inhibition timer is off in step415, the system checks whether there has been a direction change in step430. If there has been a direction change, the system checks, in step435, whether the elapsed time between the last scroll event and thepresent scroll event is greater than the inhibitory constant. As willbecome apparent, this is done so that acceleration is not inhibited whenthe user changes scrolling direction after longer periods of time, suchas after a user scrolls to a location in a document, reads for a fewseconds/minutes, then scrolls quickly back up to the beginning of thedocument.

[0042] If the result in step 435 is that the elapsed time is less thanthe inhibitory constant, the system inhibits acceleration in step 440and outputs the inhibited scroll data in step 450. If, however, theelapsed time is equal to or greater than the inhibitory constant, thesystem looks up the resulting scroll rate in the look-up table in step445, and outputs the accelerated scroll data in step 450. If the systemdetermines, in step 430, that no direction change has occurred, thesystem looks up the resulting scroll rate in the look-up table in step445, and outputs the resulting scroll data in step 450.

[0043] It should be appreciated by those skilled in the art thatmodifications may be made, or various methods or systems may be used,which are within the scope and spirit of the present invention asdefined in the appended claims.

What is claimed is:
 1. A system for controlling navigation of a datafile, comprising: an input device having a user-actuated input mechanismfor generating signals representative of input events; detection meansfor detecting a rate of user actuation of said mechanism; determinationmeans for determining a data file navigation rate representing anavigation amount per input event as an increasing exponential functionof the detected rate of user actuation; and output means for outputtingcontrol signals indicative of said navigation rate.
 2. The system ofclaim 1, wherein said determination means rounds the data filenavigation rate up to a predetermined level when the data filenavigation rate would otherwise be less than the predetermined level. 3.The system of claim 1, wherein: said navigation comprises scrolling of adisplay; said user-actuated input mechanism comprises a rotationalmember; said rate of user actuation is a rotational speed of saidrotational member; and said data file navigation rate is a scroll rate.4. The system according to claim 3, wherein said rotational membercomprises a wheel.
 5. The system according to claim 3, wherein thesystem is adapted to monitor a direction of rotation of the rotationalmember, and when the direction of rotation of the rotational memberchanges the scroll rate is fixed at a default value for a predeterminedamount of time.
 6. The system according to claim 3, wherein the systemis adapted to monitor a direction of rotation of the rotational member,and wherein a first exponential function is used when scrolling in afirst direction and a second exponential function, different from saidfirst exponential function, is used when scrolling in a seconddirection.
 7. A method for controlling navigation of a data file,comprising the steps of: detecting a rate of user actuation of auser-actuated input mechanism that generates signals representative ofinput events on an input device; determining a data file navigation raterepresenting a navigation amount per input event as an increasingexponential function of the detected rate of user actuation; andoutputting control signals indicative of said navigation rate.
 8. Themethod of claim 7, further comprising the step of rounding the data filenavigation rate up to a predetermined level when the data filenavigation rate would otherwise be less than the predetermined level. 9.The method of claim 7, wherein: said navigation comprises scrolling of adisplay; said user-actuated input mechanism comprises a rotationalmember; said rate of user actuation is a rotational speed of saidrotational member; and said data file navigation rate is a scroll rate.10. The method of claim 9, wherein said rotational member comprises awheel.
 11. The method of claim 9, further comprising the steps of:monitoring a direction of rotation of the rotational member; and fixingthe scroll rate at a default value for a predetermined amount of timewhen the direction of rotation of the rotational member changes.
 12. Themethod of claim 9, wherein a first exponential function is used whenscrolling in a first direction and a second exponential function,different from said first exponential function, is used when scrollingin a second direction.
 13. A computer readable medium storing computerreadable instructions that perform the method of claim
 7. 14. A methodfor controlling scrolling of a display of a data processing system,comprising: detecting a current rate of user actuation of a scrollcontrol input mechanism that generates signals causing the dataprocessing system to scroll information displayed on the display; anddetermining a scroll rate representing a navigation amount based on thecurrent rate of user actuation as an increasing function of the detectedrate of user actuation.
 15. The method of claim 14, wherein detecting acurrent rate of user actuation comprises: receiving a first scroll eventresulting from user actuation of the scroll control input mechanism;receiving an immediate next scroll event resulting from user actuationof the scroll control input mechanism; and determining an amount of timelapsed between the first and next scroll events, wherein determining thescroll rate representing a navigation amount is based on the amount oftime.
 16. The method of claim 14, wherein the function is an exponentialfunction.
 17. The method of claim 14, wherein the determining stepcomprises rounding the scroll rate up to a predetermined level when thescroll rate would otherwise be less than the predetermined level. 18.The method of claim 14, wherein the user-actuated scroll control inputmechanism comprises a rotational member, and further comprising:monitoring a direction of rotation of the rotational member; and whenthe direction of rotation of the rotational member changes, fixing thescroll rate at a default value for a predetermined amount of time. 19.The method according to claim 14, further comprising: monitoring adirection of actuation of the scroll control input mechanism; andwherein a first function is used when actuating the scroll control inputmechanism in a first direction and a second function, different fromsaid first function, is used when actuating the scroll control inputmechanism in a second direction.
 20. A computer readable medium storingcomputer readable instructions that, when executed by a processor,perform the method of claim
 14. 21. A computer readable medium storingcomputer readable instructions that, when executed by a processor,perform a method for controlling scrolling of a display, comprising:detecting a first scroll input event caused by a user of amultidirectional input device; detecting a second scroll input eventcaused by the user of the multidirectional input device; determining arate of user actuation of the multidirectional input device by measuringan amount of time between the first scroll input event and the secondscroll input event; and determining a scroll rate based on the measuredamount of time, said scroll rate representing an amount of scrolling tobe performed based on the second input event.
 22. The computer readablemedium of claim 21, wherein the computer executable instructions furthercomprise: detecting a third scroll input event caused by the user of themultidirectional input device; determining a new rate of user actuationof the multidirectional input device by measuring an amount of timebetween the second scroll input event and the third scroll input event;and determining a new scroll rate based on the measured amount of timebetween the second and third scroll input events, said new scroll raterepresenting an amount of scrolling to be performed based on the thirdinput event.
 23. The computer readable medium of claim 21, whereindetermining the scroll rate comprises calculating the scroll rate usingan exponential function.
 24. The computer readable medium of claim 21,wherein determining the scroll rate comprises rounding the scroll rateup to a predetermined level when the scroll rate would otherwise be lessthan the predetermined level.
 25. The computer readable medium of claim21, wherein the scroll rate comprises a line scroll rate.
 26. Thecomputer readable medium of claim 23, wherein determining the scrollrate comprises using a first exponential function when themultidirectional input device is actuated in first direction, and usinga second exponential function, different from said first exponentialfunction, when the multidirectional input device is actuated in a seconddirection.
 27. A method of performing accelerated vertical scrolling ofa computer display, comprising the step of scrolling an amount directlybased on a current speed with which a user actuates a multidirectionalinput device.
 28. A method of scrolling information on a computerdisplay, comprising scrolling a vertical amount based on a currentvelocity of a multidirectional input device actuated by a user of themultidimensional input device.
 29. A method for accelerated datanavigation, comprising the steps of: determining a rate of useractuation of a multidirectional user-actuated input mechanism; andconverting the rate of user actuation into a navigation rate accordingto an acceleration curve.
 30. The method of claim 29, further comprisingthe step of detecting a direction of user actuation of themultidirectional user-actuated input mechanism, wherein the convertingstep comprises using a first acceleration curve when themultidirectional user-actuated input mechanism is actuated in a firstdirection, and using a second acceleration curve when themultidirectional user-actuated input mechanism is actuated in a seconddirection.
 31. The method of claim 29, wherein the converting stepcomprises rounding up the navigation rate to a predetermined amount whenit would otherwise be below the predetermined amount.
 32. The method ofclaim 29, further comprising the step of detecting a direction of useractuation of the multidirectional user-actuated input mechanism, andwherein the converting step comprises forcing the navigation rate to adefault value for a predetermined amount of time upon detecting a changein direction of user actuation.
 33. A system comprising: an input deviceconnected to a computer, the input device comprising a bi-directionalscrolling input mechanism; the computer comprising an input devicedriver for performing accelerated scrolling by determining a scrollamount based on a direction and rate of user actuation of thebi-directional scrolling input mechanism, and outputting the scrollamount to a display controller for scrolling content on a displayconnected to the computer.